<html xmlns="http://www.w3.org/1999/xhtml"><head><title>DocBlox Documentation</title><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></meta><link rel="stylesheet" href="css/jquery-ui.css" type="text/css"></link><link rel="stylesheet" href="css/docblox/jquery-ui-1.8.16.custom.css" type="text/css"></link><link rel="stylesheet" href="css/jquery.treeview.css" type="text/css"></link><link rel="stylesheet" href="css/theme.css" type="text/css"></link><script type="text/javascript" src="js/jquery-1.4.2.min.js"></script><script type="text/javascript" src="js/jquery-ui-1.8.2.custom.min.js"></script><script type="text/javascript" src="js/jquery.cookie.js"></script><script type="text/javascript" src="js/jquery.treeview.js"></script><script type="text/javascript">
            $(document).ready(function() {
                $(".filetree").treeview({
                    collapsed: true,
                    persist: "cookie"
                });

                $("#accordion").accordion({
                    collapsible: true,
                    autoHeight:  false,
                    fillSpace:   true
                });

                $(".tabs").tabs();
            });
        </script></head><body><div xmlns="" id="content">
<script xmlns:dbx="http://docblox-project.org/xsl/functions">

      function filterElements()
      {
        inherited = !$('#show-inherited').hasClass('deselected');
        public    = !$('#show-public').hasClass('deselected');
        protected = !$('#show-protected').hasClass('deselected');
        private   = !$('#show-private').hasClass('deselected');

        $('div.public').each(function(index, val) {
            $(val).toggle(public && !($(val).hasClass('inherited_from') && !inherited));
        });
        $('div.protected').each(function(index, val) {
            $(val).toggle(protected && !($(val).hasClass('inherited_from') && !inherited));
        });
        $('div.private').each(function(index, val) {
            $(val).toggle(private && !($(val).hasClass('inherited_from') && !inherited));
        });
      }

      $(document).ready(function() {
        $('a.gripper').click(function() {
            $(this).nextAll('div.code-tabs').slideToggle();
            $(this).children('img').toggle();
            return false;
        });

        $('div.method code span.highlight,div.function code span.highlight,div.constant code span.highlight,div.property code span.highlight').css('cursor', 'pointer');

        $('div.method code span.highlight,div.function code span.highlight,div.constant code span.highlight,div.property code span.highlight').click(function() {
            $(this).parent().nextAll('div.code-tabs').slideToggle();
            $(this).parent().prevAll('a.gripper').children('img').toggle();
            return false;
        });

        $('div.code-tabs').hide();
        $('a.gripper').show();
        $('div.code-tabs:empty').prevAll('a.gripper').html('');

        $('#show-public, #show-protected, #show-private, #show-inherited')
            .css('cursor', 'pointer')
            .click(function(){
                $(this).toggleClass('deselected');
                if ($(this).hasClass('deselected')) {
                  $(this).fadeTo('fast', '0.4');
                } else {
                  $(this).fadeTo('fast', '1.0');
                }
                filterElements();
                return false;
            });
        $('#show-protected, #show-private').click();

        // add the sliding behaviour to the file navigation and show it
        // it is initially hidden for non-JS users.
        $("#file-nav-box").show().hover(function() {
            $("#file-nav-container").slideDown(400);
        }, function() {
            $("#file-nav-container").slideUp(400);
        });
      });

      
    </script><h1 xmlns:dbx="http://docblox-project.org/xsl/functions" class="file">\src\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm.inc</h1>
<div xmlns:dbx="http://docblox-project.org/xsl/functions" id="file-nav-box">
<div id="file-nav-options">
              Show:
              <img src="images/icons/visibility_public.png" id="show-public"><img src="images/icons/visibility_protected.png" id="show-protected"><img src="images/icons/visibility_private.png" id="show-private"><span class="attribute" id="show-inherited">inherited</span>
</div>
<div id="file-nav-container">
<ul id="file-nav"><li>
<a href="#classes"><img src="images/icons/class.png" height="14">
                          Classes
                      </a><ul><li><a href="#%5CReingoldTilford%5CAlgorithms%5CReingoldTilfordAlgorithm">\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm</a></li></ul>
</li></ul>
<div style="clear: left;"></div>
</div>
<div id="file-nav-tab">
              Table of Contents
          </div>
</div>
<a xmlns:dbx="http://docblox-project.org/xsl/functions" name="top" class="anchor"></a><a name="classes" class="anchor"></a><a xmlns:dbx="http://docblox-project.org/xsl/functions" id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm" class="anchor"></a><h2 xmlns:dbx="http://docblox-project.org/xsl/functions" class="class">\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm<div class="to-top"><a href="#top">jump to top</a></div>
</h2>
<div xmlns:dbx="http://docblox-project.org/xsl/functions" class="class">
<small class="package"><b>Package: </b>Default</small><p class="short-description">This clas implements the Reingold-Tilford tree drawing algorithm. The alorithm works in O(n), where n is the number of nodes in the tree.</p>
<div class="long-description">
</div>
<dl class="class-info"></dl>
<h3>Properties</h3>
<div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$BINARY_DEGREE" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">
                 <span class="highlight">$BINARY_DEGREE</span>= '2'
                </code><div class="description">
<span class="attribute">static</span><p class="short-description">two children make an binary degree</p>
</div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>2</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd></dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$ONLY_CHILD_DEGREE" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">
                 <span class="highlight">$ONLY_CHILD_DEGREE</span>= '1'
                </code><div class="description">
<span class="attribute">static</span><p class="short-description">one child only makes an only child degree</p>
</div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>1</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd></dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$children" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">\ReingoldTilford\Algorithms\array[int]TreeNode
                 <span class="highlight">$children</span>= 'null'
                </code><div class="description">
<p class="short-description">a reference to the children of the currently visited node (cached for performance reasons)</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>null</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd>\ReingoldTilford\Algorithms\array[int]TreeNode</dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$currentRightOutline" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">array
                 <span class="highlight">$currentRightOutline</span>= 'null'
                </code><div class="description">
<p class="short-description">the current right outline (i.e. right outline of the current left subtree)</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>null</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd>array</dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$depths" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">\ReingoldTilford\Algorithms\SplObjectStorage
                 <span class="highlight">$depths</span>= 'null'
                </code><div class="description">
<p class="short-description">hash table that maps a node to its depth</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>null</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd>\ReingoldTilford\Algorithms\SplObjectStorage</dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$leftOutline" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">\ReingoldTilford\Algorithms\SplObjectStorage
                 <span class="highlight">$leftOutline</span>= 'null'
                </code><div class="description">
<p class="short-description">the left outline of the nodes</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>null</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd>\ReingoldTilford\Algorithms\SplObjectStorage</dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$leftThread" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">\ReingoldTilford\Algorithms\SplObjectStorage
                 <span class="highlight">$leftThread</span>= 'null'
                </code><div class="description">
<p class="short-description">the left threads</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>null</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd>\ReingoldTilford\Algorithms\SplObjectStorage</dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$minDistance" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">int
                 <span class="highlight">$minDistance</span>= '1'
                </code><div class="description">
<p class="short-description">the minimal horizontal distance of two nodes</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>1</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd>int</dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$model" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">\ReingoldTilford\Models\ITreeModel
                 <span class="highlight">$model</span>= 'null'
                </code><div class="description">
<p class="short-description">the tree model the algorithm uses</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>null</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd><a href="db_src_ReingoldTilford_Models_ITreeModel.html#%5CReingoldTilford%5CModels%5CITreeModel">\ReingoldTilford\Models\ITreeModel</a></dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$nodeDegree" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">int
                 <span class="highlight">$nodeDegree</span>= 'null'
                </code><div class="description">
<p class="short-description">the number of children of the currently visited node (cached for performance reasons)</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>null</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd>int</dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$offsets" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">\ReingoldTilford\Algorithms\SplObjectStorage
                 <span class="highlight">$offsets</span>= 'null'
                </code><div class="description">
<p class="short-description">the x-offsets of the nodes</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>null</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd>\ReingoldTilford\Algorithms\SplObjectStorage</dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$orientation" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">string
                 <span class="highlight">$orientation</span>= 'TreeStyle::CENTERED'
                </code><div class="description">
<p class="short-description">the orientation variant of the tree</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>TreeStyle::CENTERED</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd>string</dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$parents" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">\ReingoldTilford\Algorithms\SplObjectStorage
                 <span class="highlight">$parents</span>= 'null'
                </code><div class="description">
<p class="short-description">hash table that maps a node to its parent</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>null</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd>\ReingoldTilford\Algorithms\SplObjectStorage</dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$rightOutline" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">\ReingoldTilford\Algorithms\SplObjectStorage
                 <span class="highlight">$rightOutline</span>= 'null'
                </code><div class="description">
<p class="short-description">the right outline of the nodes</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>null</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd>\ReingoldTilford\Algorithms\SplObjectStorage</dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$rightThread" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">\ReingoldTilford\Algorithms\SplObjectStorage
                 <span class="highlight">$rightThread</span>= 'null'
                </code><div class="description">
<p class="short-description">the right threads</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>null</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd>\ReingoldTilford\Algorithms\SplObjectStorage</dd>
</dl>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::$root" class="anchor"></a><div class="property private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/property.png" alt="Property"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private">\ReingoldTilford\Algorithms\TreeNode
                 <span class="highlight">$root</span>= 'null'
                </code><div class="description">
<p class="short-description">the root of the (sub)tree to be printed</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Default value</strong><code>null</code><strong>Details</strong><dl class="property-info">
<dt>Type</dt>
<dd>\ReingoldTilford\Algorithms\TreeNode</dd>
</dl>
</div>
<div class="clear"></div>
</div>
</div>
<h3>Methods</h3>
<div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::__construct()" class="anchor"></a><div class="method public">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/method.png" alt="method"><img src="images/icons/visibility_public.png" style="margin-right: 5px" alt="public"><span class="highlight">__construct</span><span class="nb-faded-text">(
          
          )
        </span>
        :
          void</code><div class="description"><p class="short_description">This method acts as the constructor of the class.</p></div>
<div class="code-tabs"><div class="long-description">
</div></div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::calculateSubTreeShifts()" class="anchor"></a><div class="method private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/method.png" alt="method"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private"><span class="highlight">calculateSubTreeShifts</span><span class="nb-faded-text">(
          object $node, \ReingoldTilford\Algorithms\array[int][int]TreeNode $leftOutlines, \ReingoldTilford\Algorithms\array[int][int]TreeNode $rightOutlines
          )
        </span>
        :
          \ReingoldTilford\Algorithms\array[int]int</code><div class="description"><p class="short_description">This method returns the subtree shifts of the children of the current node.</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Parameters</strong><table class="argument-info">
<thead><tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr></thead>
<tr>
<th>$node</th>
<td>object</td>
<td><em><p>the current node that is traversed</p></em></td>
</tr>
<tr>
<th>$leftOutlines</th>
<td>\ReingoldTilford\Algorithms\array[int][int]TreeNode</td>
<td><em><p>the left outlines of the node</p></em></td>
</tr>
<tr>
<th>$rightOutlines</th>
<td>\ReingoldTilford\Algorithms\array[int][int]TreeNode</td>
<td><em><p>the right outlines of the node</p></em></td>
</tr>
</table>
<strong>Returns</strong><table class="argument-info">
<thead><tr>
<th>Type</th>
<th>Description</th>
</tr></thead>
<tr>
<td>\ReingoldTilford\Algorithms\array[int]int</td>
<td></td>
</tr>
</table>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::calculatesOffsets()" class="anchor"></a><div class="method private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/method.png" alt="method"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private"><span class="highlight">calculatesOffsets</span><span class="nb-faded-text">(
          object $node
          )
        </span>
        :
          void</code><div class="description"><p class="short_description">This method calculates the offsets of a node.</p></div>
<div class="code-tabs">
<div class="long-description"><p>This is the main method of the algorithm.</p>
</div>
<strong>Parameters</strong><table class="argument-info">
<thead><tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr></thead>
<tr>
<th>$node</th>
<td>object</td>
<td><em></em></td>
</tr>
</table>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::getChildren()" class="anchor"></a><div class="method private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/method.png" alt="method"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private"><span class="highlight">getChildren</span><span class="nb-faded-text">(
          object $node
          )
        </span>
        :
          <a href="http://php.net/manual/en/class.arrayobject.php">\ArrayObject</a></code><div class="description"><p class="short_description">This helper method returns the child nodes of a given node.</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Parameters</strong><table class="argument-info">
<thead><tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr></thead>
<tr>
<th>$node</th>
<td>object</td>
<td><em><p>the node for which to get its child nodes</p></em></td>
</tr>
</table>
<strong>Returns</strong><table class="argument-info">
<thead><tr>
<th>Type</th>
<th>Description</th>
</tr></thead>
<tr>
<td><a href="http://php.net/manual/en/class.arrayobject.php">\ArrayObject</a></td>
<td>of child nodes</td>
</tr>
</table>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::getDegree()" class="anchor"></a><div class="method private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/method.png" alt="method"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private"><span class="highlight">getDegree</span><span class="nb-faded-text">(
          object $node
          )
        </span>
        :
          int</code><div class="description"><p class="short_description">This helper method gets the degree of a given node.</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Parameters</strong><table class="argument-info">
<thead><tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr></thead>
<tr>
<th>$node</th>
<td>object</td>
<td><em><p>the node of which the degree has to be calculated</p></em></td>
</tr>
</table>
<strong>Returns</strong><table class="argument-info">
<thead><tr>
<th>Type</th>
<th>Description</th>
</tr></thead>
<tr>
<td>int</td>
<td>the degree of the node</td>
</tr>
</table>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::getLayout()" class="anchor"></a><div class="method public">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/method.png" alt="method"><img src="images/icons/visibility_public.png" style="margin-right: 5px" alt="public"><span class="highlight">getLayout</span><span class="nb-faded-text">(
          <a href="db_src_ReingoldTilford_Models_ITreeModel.html#%5CReingoldTilford%5CModels%5CITreeModel">\ReingoldTilford\Models\ITreeModel</a> $model, \ReingoldTilford\Algorithms\type $orientation
              =
              TreeStyle::CENTERED
          )
        </span>
        :
          <a href="db_src_ReingoldTilford_Algorithms_Layout.html#%5CReingoldTilford%5CAlgorithms%5CLayout">\ReingoldTilford\Algorithms\Layout</a></code><div class="description"><p class="short_description">This method returns a Layout for a given ITreeModel.</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Parameters</strong><table class="argument-info">
<thead><tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr></thead>
<tr>
<th>$model</th>
<td><a href="db_src_ReingoldTilford_Models_ITreeModel.html#%5CReingoldTilford%5CModels%5CITreeModel">\ReingoldTilford\Models\ITreeModel</a></td>
<td><em><p>the tree model to get a layout for</p></em></td>
</tr>
<tr>
<th>$orientation</th>
<td>\ReingoldTilford\Algorithms\type</td>
<td><em><p>the orientation of the children of a node, either one of TreeStyle::CENTERED, TreeStyle::LEFT, TreeStyle::RIGHT</p></em></td>
</tr>
</table>
<strong>Returns</strong><table class="argument-info">
<thead><tr>
<th>Type</th>
<th>Description</th>
</tr></thead>
<tr>
<td><a href="db_src_ReingoldTilford_Algorithms_Layout.html#%5CReingoldTilford%5CAlgorithms%5CLayout">\ReingoldTilford\Algorithms\Layout</a></td>
<td>the layout of the given tree model</td>
</tr>
</table>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::getPostOrderEnumeration()" class="anchor"></a><div class="method private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/method.png" alt="method"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private"><span class="highlight">getPostOrderEnumeration</span><span class="nb-faded-text">(
          
          )
        </span>
        :
          <a href="http://php.net/manual/en/class.spldoublylinkedlist.php">\SplDoublyLinkedList</a></code><div class="description"><p class="short_description">This helper method returns the post-order enumaration of the tree model.</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Returns</strong><table class="argument-info">
<thead><tr>
<th>Type</th>
<th>Description</th>
</tr></thead>
<tr>
<td><a href="http://php.net/manual/en/class.spldoublylinkedlist.php">\SplDoublyLinkedList</a></td>
<td>the post-order enumaration of the tree model</td>
</tr>
</table>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::getPreOrderEnumeration()" class="anchor"></a><div class="method private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/method.png" alt="method"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private"><span class="highlight">getPreOrderEnumeration</span><span class="nb-faded-text">(
          
          )
        </span>
        :
          <a href="http://php.net/manual/en/class.spldoublylinkedlist.php">\SplDoublyLinkedList</a></code><div class="description"><p class="short_description">This helper method returns the pre-order enumaration of the tree model.</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Returns</strong><table class="argument-info">
<thead><tr>
<th>Type</th>
<th>Description</th>
</tr></thead>
<tr>
<td><a href="http://php.net/manual/en/class.spldoublylinkedlist.php">\SplDoublyLinkedList</a></td>
<td>the pre-order enumaration of the tree model</td>
</tr>
</table>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::initialize()" class="anchor"></a><div class="method private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/method.png" alt="method"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private"><span class="highlight">initialize</span><span class="nb-faded-text">(
          
          )
        </span>
        :
          void</code><div class="description"><p class="short_description">This method (re)initializes the internal data structures, so an object of this class can be used for several trees to be drawn.</p></div>
<div class="code-tabs"><div class="long-description">
</div></div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::initializeMetaData()" class="anchor"></a><div class="method private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/method.png" alt="method"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private"><span class="highlight">initializeMetaData</span><span class="nb-faded-text">(
          
          )
        </span>
        :
          void</code><div class="description"><p class="short_description">This helper method initializes the meta data for use in the algorithm</p></div>
<div class="code-tabs"><div class="long-description">
</div></div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::setNodeOffsets()" class="anchor"></a><div class="method private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/method.png" alt="method"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private"><span class="highlight">setNodeOffsets</span><span class="nb-faded-text">(
          object $node, \ReingoldTilford\Algorithms\array[int]double $subTreeShifts
          )
        </span>
        :
          void</code><div class="description"><p class="short_description">This method sets the offsets of the children of the current node.</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Parameters</strong><table class="argument-info">
<thead><tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr></thead>
<tr>
<th>$node</th>
<td>object</td>
<td><em><p>the current node that is traversed</p></em></td>
</tr>
<tr>
<th>$subTreeShifts</th>
<td>\ReingoldTilford\Algorithms\array[int]double</td>
<td><em><p>the shifts of the subtrees</p></em></td>
</tr>
</table>
</div>
<div class="clear"></div>
</div>
<a id="\ReingoldTilford\Algorithms\ReingoldTilfordAlgorithm::updateOutlines()" class="anchor"></a><div class="method private">
<a href="#" class="gripper"><img src="images/icons/arrow_right.png"><img src="images/icons/arrow_down.png" style="display: none;"></a><code><img src="images/icons/method.png" alt="method"><img src="images/icons/visibility_private.png" style="margin-right: 5px" alt="private"><span class="highlight">updateOutlines</span><span class="nb-faded-text">(
          object $node, \ReingoldTilford\Algorithms\array[int][int]TreeNode $leftOutlines
          )
        </span>
        :
          void</code><div class="description"><p class="short_description">This method updates the left and the right outline of the current node.</p></div>
<div class="code-tabs">
<div class="long-description">
</div>
<strong>Parameters</strong><table class="argument-info">
<thead><tr>
<th>Name</th>
<th>Type</th>
<th>Description</th>
</tr></thead>
<tr>
<th>$node</th>
<td>object</td>
<td><em><p>the current node that is traversed</p></em></td>
</tr>
<tr>
<th>$leftOutlines</th>
<td>\ReingoldTilford\Algorithms\array[int][int]TreeNode</td>
<td><em><p>the left outlines of the node</p></em></td>
</tr>
</table>
</div>
<div class="clear"></div>
</div>
</div>
</div>
</div>
<small xmlns="" class="footer">Documentation was generated by <a href="http://docblox-project.org">DocBlox 0.15.1</a>.
    </small></body></html>
